class UsuariosController < ApplicationController
  before_filter :get_usuario, :only => [:perfil, :edit,:show, :update, :destroy]

	def get_usuario
		if params[:id]
			@usuario = Usuario.find(params[:id])
		elsif params[:nombre_usuario]
      if usuario = Usuario.find_by_nombre(params[:nombre])
        @usuario = usuario
      else
        redirect_to(root_path, :notice => "No existe un usuario asociado!")
      end
    elsif session[:usuario_id]
      @usuario = Usuario.find(session[:usuario_id])
    else
      redirect_to(root_path, :notice => "No existe un usuario asociado#!")
    end
	end
	
	def login
    if (usuario = Usuario.login(params[:email], params[:password]))
		session[:usuario_id] = usuario.id
        redirect_to(viajes_path, :notice => "Bienvenido #{usuario.nombre}!")
    else
      redirect_to(root_path, :notice => "Nombre de usuario o password incorrecto!")
    end
  end
  
  def logout
    reset_session
    redirect_to (root_path, :notice => "Has cerrado session exitosamente")
  end
	
	def perfil
			render 'perfil.html.erb'
  end
  
	def home
		render 'usuarios.html.erb'
	end
	
  # GET /usuarios
  # GET /usuarios.xml
  def index
    @usuarios = Usuario.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @usuarios }
    end
  end

  # GET /usuarios/1
  # GET /usuarios/1.xml
  def show

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @usuario }
    end
  end

  # GET /usuarios/new
  # GET /usuarios/new.xml
  def new

    @usuario = Usuario.new
    render :layout => "usuarios"

  end

  # GET /usuarios/1/edit
  def edit
  end

  # POST /usuarios
  # POST /usuarios.xml
  def create
	
	@usuario = Usuario.new(params[:usuario])
	
    respond_to do |format|
      if @usuario.save
        format.html { redirect_to(@usuario, :notice => 'Usuario was successfully created.') }
        format.xml  { render :xml => @usuario, :status => :created, :location => @usuario }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @usuario.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /usuarios/1
  # PUT /usuarios/1.xml
  def update

    respond_to do |format|
      if @usuario.update_attributes(params[:usuario])
        format.html { redirect_to(@usuario, :notice => 'Usuario was successfully updated.') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @usuario.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /usuarios/1
  # DELETE /usuarios/1.xml
  def destroy
    @usuario.destroy

    respond_to do |format|
      format.html { redirect_to(usuarios_url) }
      format.xml  { head :ok }
    end
  end
end
